Skip to content

Add editor setting for instantiated scenes to have editable children by default#70947

Open
realkotob wants to merge 1 commit intogodotengine:masterfrom
realkotob:kotob/show-editable-children-by-default
Open

Add editor setting for instantiated scenes to have editable children by default#70947
realkotob wants to merge 1 commit intogodotengine:masterfrom
realkotob:kotob/show-editable-children-by-default

Conversation

@realkotob
Copy link
Copy Markdown
Contributor

@realkotob realkotob commented Jan 5, 2023

Part of the usability changes for godotengine/godot-proposals#3248

I added a new editor setting that is disabled by default, so this is entirely opt-in.

Screenshot 2023-01-05 at 14 47 45

I added code for this in 3 places, so that it would work with the Instantiate button, with dragging into the scene tree, and with dragging into the viewport.

2023-01-05.14-44-47.mp4

Let me know what you think, I am open to feedback.

@realkotob realkotob requested review from a team January 5, 2023 13:50
@realkotob realkotob force-pushed the kotob/show-editable-children-by-default branch from fc8ca0d to d227998 Compare January 5, 2023 15:41
@realkotob realkotob requested a review from a team as a code owner January 5, 2023 15:41
@Calinou Calinou added this to the 4.x milestone Jan 5, 2023
@realkotob realkotob force-pushed the kotob/show-editable-children-by-default branch from d227998 to 0980ce7 Compare October 20, 2023 13:02
Comment thread editor/scene_tree_dock.cpp Outdated
Comment thread editor/plugins/canvas_item_editor_plugin.cpp Outdated
@FyiurAmron
Copy link
Copy Markdown

@realkotob this looks great - are you still maintaining it or is it abandoned though?

@Repiteo Repiteo requested a review from a team as a code owner February 17, 2026 20:11
@realkotob realkotob force-pushed the kotob/show-editable-children-by-default branch from 0980ce7 to be5271a Compare April 14, 2026 14:50
@realkotob realkotob requested a review from a team as a code owner April 14, 2026 14:50
Comment thread doc/classes/EditorSettings.xml Outdated
Copy link
Copy Markdown
Member

@KoBeWi KoBeWi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implementation looks fine.

Could use a review from usability team. Also I wonder if the setting shouldn't appear in the Scene dock's options menu, next to other tree-related settings.

Comment thread editor/docks/scene_tree_dock.cpp Outdated
Comment thread editor/settings/editor_settings.cpp Outdated
@KoBeWi KoBeWi requested a review from a team April 14, 2026 16:06
@passivestar
Copy link
Copy Markdown
Contributor

Isn't the linked proposal better addressed by #84018?

The proposal mentions that scene clutter is an issue, which this checkbox won't solve, and it only suggests adding this checkbox as a solution to the problem of having to right click editable children all the time, which #84018 does solve because exposed nodes are visible in the tree

@realkotob realkotob force-pushed the kotob/show-editable-children-by-default branch 2 times, most recently from 2b14676 to 117d66b Compare April 14, 2026 18:35
@realkotob
Copy link
Copy Markdown
Contributor Author

realkotob commented Apr 14, 2026

@passivestar I just saw that PR and I agree that it is a good contribution, but I still have a concern about that PR.

First of all, the number of clicks required for quick iteration will increase instead of decrease after #84018 is merged, because instead of just right clicking to making all nodes exposable by default as we can now, I would have to select which ones I want to expose. Even in the best case if there is an "Expose All" button that is still 3 additional, extra clicks: open panel, press expose all, save & close.

So that means even after that feature is merged, it would be nice to have an editor setting that automatically makes all nodes exposed by default, then users can then go into that scene to de-select which nodes are exposed when they want to get more control and tidy up the view.

If this PR is merged (and I think it should, because it makes life much easier), then it can be re-purposed later to have the same purpose but affect the new Exposed Nodes feature.

Edit: Similar concern voiced by AdriaandeJongh here #84018 (comment)

@realkotob realkotob force-pushed the kotob/show-editable-children-by-default branch from 117d66b to 0c2ebe2 Compare April 14, 2026 18:55
Copy link
Copy Markdown
Member

@KoBeWi KoBeWi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One last comment (check above), otherwise looks fine.

@KoBeWi KoBeWi modified the milestones: 4.x, 4.7 Apr 14, 2026
@Nikola526
Copy link
Copy Markdown

The point of that PR is not to reduce the number of clicks, but to promote encapsulation and minimize scene tree clutter. The number of cases where I'd want all the nodes of scene to be editable is close to zero. I don't mind this PR being merged, just as an option, but I sincerely hope we don't get this in place of #84018.

@AdriaandeJongh
Copy link
Copy Markdown
Contributor

I sincerely hope we don't get this in place of #84018.

no worries! these two PRs are not mutually exclusive at all.

@realkotob
Copy link
Copy Markdown
Contributor Author

realkotob commented Apr 15, 2026

@Nikola526 Yes I also hope both PRs get merged, as they really address different modes/phases of development. Sometimes you want to just have everything editable by default (game jams, quick prototypes) and sometimes you want to be very explicit about what you are exposing (during production, working in teams, etc).

This is similar to the difference between using static typing in godot or not: sometimes you just want to get things moving, other times you care about correctness.

As mentioned above, the ideal scenario is that #84018 gets merged and we get to pick to have everything exposed by default when a node is set as editable, and then we can override that to select which ones we want to keep exposed (so that new added nodes in that scene do not get automatically exposed as well).
This would be the best of both worlds approach and maintains cohesion with what we have now in the public release (when something is made editable everything is exposed).

@Repiteo Repiteo modified the milestones: 4.7, 4.8 Apr 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants